package com.rockcent.mall.lib.dto;

import com.rockcent.common.domain.DtoEntity;

import java.util.List;

/**
 * Created by DK on 16/12/8.
 */
public class TransactionDto extends DtoEntity {

    //设备号
    private String deviceInfo;

    //用户在商户appid下的唯一标识
    private String openId;

    //是否关注公众账号
    private String isSubscribe;

    //交易类型
    private String tradeTType;

    //交易状态
    private String tradeState;

    //付款银行
    private String bankType;

    //订单总金额，单位为分
    private Integer totalFee;

    //应结订单金额
    private Integer settlementTotalFee;

    //标价币种
    private String feeType;

    //现金支付金额
    private Integer cashFee;

    //现金支付币种
    private String cashFeeType;

    //代金券金额
    private Integer couponFee;

    //代金券使用数量
    private Integer couponCount;

    //单个代金券支付金额
    private String singleCouponFee;

    //微信支付订单号
    private String transactionId;

    //商户订单号
    private String outTradeNo;

    //附加数据
    private String attach;

    //支付完成时间
    private String timeEnd;

    //交易状态描述
    private String tradeStateDesc;

    private List<TransactionDto.Coupon> coupons;

    public String getDeviceInfo() {
        return deviceInfo;
    }

    public void setDeviceInfo(String deviceInfo) {
        this.deviceInfo = deviceInfo;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getIsSubscribe() {
        return isSubscribe;
    }

    public void setIsSubscribe(String isSubscribe) {
        this.isSubscribe = isSubscribe;
    }

    public String getTradeTType() {
        return tradeTType;
    }

    public void setTradeTType(String tradeTType) {
        this.tradeTType = tradeTType;
    }

    public String getTradeState() {
        return tradeState;
    }

    public void setTradeState(String tradeState) {
        this.tradeState = tradeState;
    }

    public String getBankType() {
        return bankType;
    }

    public void setBankType(String bankType) {
        this.bankType = bankType;
    }

    public String getFeeType() {
        return feeType;
    }

    public void setFeeType(String feeType) {
        this.feeType = feeType;
    }

    public String getCashFeeType() {
        return cashFeeType;
    }

    public void setCashFeeType(String cashFeeType) {
        this.cashFeeType = cashFeeType;
    }

    public int getCouponCount() {
        return couponCount;
    }

    public void setCouponCount(int couponCount) {
        this.couponCount = couponCount;
    }

    public String getSingleCouponFee() {
        return singleCouponFee;
    }

    public void setSingleCouponFee(String singleCouponFee) {
        this.singleCouponFee = singleCouponFee;
    }

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getTimeEnd() {
        return timeEnd;
    }

    public void setTimeEnd(String timeEnd) {
        this.timeEnd = timeEnd;
    }

    public String getTradeStateDesc() {
        return tradeStateDesc;
    }

    public void setTradeStateDesc(String tradeStateDesc) {
        this.tradeStateDesc = tradeStateDesc;
    }

    public Integer getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(Integer totalFee) {
        this.totalFee = totalFee;
    }

    public Integer getSettlementTotalFee() {
        return settlementTotalFee;
    }

    public void setSettlementTotalFee(Integer settlementTotalFee) {
        this.settlementTotalFee = settlementTotalFee;
    }

    public Integer getCashFee() {
        return cashFee;
    }

    public void setCashFee(Integer cashFee) {
        this.cashFee = cashFee;
    }

    public Integer getCouponFee() {
        return couponFee;
    }

    public void setCouponFee(Integer couponFee) {
        this.couponFee = couponFee;
    }

    public void setCouponCount(Integer couponCount) {
        this.couponCount = couponCount;
    }

    public List<Coupon> getCoupons() {
        return coupons;
    }

    public void setCoupons(List<Coupon> coupons) {
        this.coupons = coupons;
    }

    public static class Coupon {
        private String couponType;
        private String couponId;
        private Integer couponFee;

        public Coupon(String couponType, String couponId, Integer couponFee) {
            this.couponType = couponType;
            this.couponId = couponId;
            this.couponFee = couponFee;
        }

        public String getCouponType() {
            return this.couponType;
        }

        public void setCouponType(String couponType) {
            this.couponType = couponType;
        }

        public String getCouponId() {
            return this.couponId;
        }

        public void setCouponId(String couponId) {
            this.couponId = couponId;
        }

        public Integer getCouponFee() {
            return this.couponFee;
        }

        public void setCouponFee(Integer couponFee) {
            this.couponFee = couponFee;
        }
    }

    @Override
    public String toString() {
        return "TransactionDto{" +
                "deviceInfo='" + deviceInfo + '\'' +
                ", openId='" + openId + '\'' +
                ", isSubscribe='" + isSubscribe + '\'' +
                ", tradeTType='" + tradeTType + '\'' +
                ", tradeState='" + tradeState + '\'' +
                ", bankType='" + bankType + '\'' +
                ", totalFee=" + totalFee +
                ", settlementTotalFee=" + settlementTotalFee +
                ", feeType='" + feeType + '\'' +
                ", cashFee=" + cashFee +
                ", cashFeeType='" + cashFeeType + '\'' +
                ", couponFee=" + couponFee +
                ", couponCount=" + couponCount +
                ", singleCouponFee='" + singleCouponFee + '\'' +
                ", transactionId='" + transactionId + '\'' +
                ", outTradeNo='" + outTradeNo + '\'' +
                ", attach='" + attach + '\'' +
                ", timeEnd='" + timeEnd + '\'' +
                ", tradeStateDesc='" + tradeStateDesc + '\'' +
                ", coupons=" + coupons +
                '}';
    }
}
